package com.ptkc.core.esearch.model;

import com.ptkc.utils.DataColumn;
import com.ptkc.utils.IgnoreIfNull;
import lombok.Data;
import org.elasticsearch.common.geo.GeoPoint;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: Mr.Jiao
 * @date: 2018年11月28日
 */
@Data
public class Business {

    /*** 商家id*/
    private Integer id;

    /*** 详细地址*/
    private String address;

    /*** 地市*/
    private String cityId;

    /*** 地市*/
    private String cityName;

    /*** 商家介绍*/
    private String content;

    /*** 区县*/
    private String countyId;

    /*** 区县*/
    private String countyName;

    /*** 创建时间*/
    private Date createTime;

    /*** 门店logo，商家LOGO*/
    private String imgPath;

    /*** 纬度*/
    private String latitude;

    /*** 等级*/
    private Integer levelId;

    /*** 等级*/
    private String levelName;

    /*** 经度*/
    private String longitude;

    /*** 电话号码（作为以后的登录账户），老板电话以及生成登录账户使用的号码*/
    private String mobile;

    /*** 店铺名称*/
    private String name;

    private String saleDayTime;

    /*** 经营范围*/
    private String saleRange;

    private String saleTime;

    /*** 乡镇/街道*/
    private String townId;

    /*** 乡镇/街道*/
    private String townName;

    /*** 类型：对应页面：门店分类（有子分类）*/
    private Integer typeId;

    /*** 类型*/
    private String typeName;

    private Integer salesnum;

    private Integer sort;

    /*** 起送价*/
    private BigDecimal startPay;

    /*** 营业结束时间(时段1)*/
    private Date endwork;

    /*** 营业开始时间(时段1)*/
    private Date startwork;

    /*** 工作日：1星期天，2星期一以此类推七天*/
    private String worktoday;

    /*** 打包费*/
    private BigDecimal packing;

    /*** 是否商家自己配送0否1是*/
    private Integer isDeliver;

    /*** 排序(降序 越大排越前)*/
    private Integer recommend;

    private Integer speed;

    private Integer status;

    /*** 平台佣金（抽佣比率）*/
    private Double coefficient;

    /*** 最低提现金额*/
    private BigDecimal minmonety;

    /*** 提现周期*/
    private Integer period;

    /*** 提现账号*/
    private String account;

    private BigDecimal showps;

    /*** 商家自己配送的配送费*/
    private BigDecimal busshowps;

    /*** 营业结束时间(时段2)*/
    private Date endwork2;

    /*** 营业开始时间(时段2)*/
    private Date startwork2;

    /*** 营业状态：0正常营业1暂停营业*/
    private Integer statu;

    /*** 所属代理商*/
    private Integer agentId;

    /*** 所属代理商*/
    private String agentName;

    /*** 商家状态 -1：冻结 其他正常*/
    private Integer statusx;

    private Integer distributionTime;

    /*** 打包时间(分钟)*/
    private Integer packTime;

    /*** 提现银行:/*提现银行1中国工商银行2中国建设银行3招商银行4中国农业银行5交通银行6中国银行7广发银行8华夏银行*/
    private Integer bank;

    /*** 开户行*/
    private String establishbank;

    /*** 开户名*/
    private String establishname;

    /*** 门店logo压缩文件地址*/
    @DataColumn(value = "mini_imgPath")
    private String miniImgPath;

    private Integer isopen;

    /*** 特殊配送的配送费*/
    private BigDecimal baseCharge;

    /*** 是否特殊配送*/
    private Integer isCharge;

    /*** 店铺的code*/
    private String code;

    private String typestr;

    /*** 所属分组*/
    private Integer teamid;

    /*** 所属分组*/
    private String teamname;

    private Integer visitnum;

    /*** 是否补贴配送费*/
    private Integer issubsidy;

    /*** 商家补贴配送费金额*/
    private BigDecimal subsidy;

    /*** 是否金牌商家*/
    private Boolean goldBusiness;

    /*** 是否自动打印*/
    private Boolean autoPrint;

    private Boolean autoTaking;

    /*** 是否优先排名*/
    private Boolean priority;

    /*** 外卖负责人手机号,对应页面：外卖电话*/
    @DataColumn(value = "wm_mobile")
    private String wmMobile;

    /*** 门脸照片*/
    @DataColumn(value = "face_image")
    private String faceImage;

    /*** 店内照片*/
    @DataColumn(value = "inner_image")
    private String innerImage;

    /*** 商家获得评论总分*/
    private Integer score;

    /*** 主体资质：暂无（null或者0）,有（1）*/
    private Integer mainCert;

    /*** 主体资质照片*/
    private String mainImg;

    /*** 主体资质单位名称*/
    private String mainOrgName;

    /*** 主体资质反对负责人*/
    private String mainLeader;

    /*** 注册号*/
    private String registerNum;

    /*** 注册地址*/
    private String registerAddress;

    /*** 有效期*/
    private Date mainExpirationDate;

    /*** 行业资质：暂无（null或者0）,有（1）*/
    private Integer tradeCert;

    /*** 行业照片*/
    private String tradeImg;

    /*** 单位名称*/
    private String tradeOrgName;

    /*** 法定负责人*/
    private String tradeLeader;

    /*** 许可证编号*/
    private String licenseNum;

    /*** 许可证地址*/
    private String licenseAddress;

    /*** 有效期*/
    private Date tradeExpirationDate;

    /*** 老板姓名:对应页面：联系人姓名*/
    @DataColumn(value = "boss_name")
    private String bossName;

    /*** 待完善的完成了第一个步,0完成，1待完善*/
    private Boolean undone;

    /*** 营业结束时间3*/
    private Date endwork3;

    /*** 营业开始时间3*/
    private Date startwork3;

    /*** 是否绑定银行卡：false未绑定，true已绑定*/
    @DataColumn(value = "binding_bank")
    private Boolean bindingBank;

    /*** 金牌商家标签的过期时间（15天）*/
    @DataColumn(value = "expire_time")
    private Date expireTime;

    /*** 省份id*/
    @DataColumn(value = "province_id")
    private String provinceId;

    /*** 省份名称*/
    @DataColumn(value = "province_name")
    private String provinceName;

    /*** 主分类id*/
    @DataColumn(value = "main_class_id")
    private Integer mainClassId;

    /*** 次分类id1*/
    @DataColumn(value = "sub_class_id1")
    private Integer subClassId1;

    /*** 次分类id2*/
    @DataColumn(value = "sub_class_id2")
    private Integer subClassId2;

    /*** 是否支持自取（1：自取）*/
    private Boolean suportSelf;

    /*** 1:支持预定*/
    private Boolean bookable;
    /*** 0或null为折后抽点，1折前抽点（默认折后抽点）*/
    private Integer drawMode;

    /*** 支行名称*/
    private String branchName;
    /**
     * 最大配送距离
     */
    private BigDecimal maxDistance;

    @IgnoreIfNull
    //本月订单量
    private Integer thisMonthOrderQuantity;

    @IgnoreIfNull
    //上月订单量
    private Integer lastMonthOrderQuantity;

    @IgnoreIfNull
    //本周订单量
    private Integer thisWeekOrderQuantity;

    @IgnoreIfNull
    //上周订单量
    private Integer lastWeekOrderQuantity;

    @IgnoreIfNull
    //昨日订单量
    private Integer yesterOrderQuantity;

    @IgnoreIfNull
    private Integer todayOrderQuantity;

    @IgnoreIfNull
    private BigDecimal thisMonthPayAmount;

    @IgnoreIfNull
    private BigDecimal lastMonthPayAmount;

    @IgnoreIfNull
    private BigDecimal thisWeekPayAmount;

    @IgnoreIfNull
    private BigDecimal lastWeekPayAmount;

    @IgnoreIfNull
    private BigDecimal todayPayAmount;

    @IgnoreIfNull
    private BigDecimal yesterPayAmount;

    @IgnoreIfNull
    //上次订单完成时间
    private Date lastOrderTime;

    @IgnoreIfNull
    //配送范围
    private String distRange;

    @IgnoreIfNull
    private Object distRangeShape;

    @IgnoreIfNull
    private Object selfDistRangeShape;

    @IgnoreIfNull
    private GeoPoint busPoint;

    @IgnoreIfNull
    private BigDecimal scoreAvg;

    @IgnoreIfNull
    private Integer distanceSegment1;

    @IgnoreIfNull
    private Integer distanceSegment2;

    @IgnoreIfNull
    private Integer distanceSegment3;

}
